package com.zxl.designpattern.behavioral.memento;

/**
 * 主类，演示备忘录模式的使用
 */
public class Test {
    public static void main(String[] args) {
        // 文本编辑器，发起人创建者
        TextEditor editor = new TextEditor("初始内容");
        // 备忘录管理者
        Caretaker caretaker = new Caretaker();
        
        // 保存初始状态
        System.out.println("保存状态");
        caretaker.saveState(editor.createMemento());
        System.out.println("初始状态: " + editor.getContent());

        // 修改内容
        editor.append(" 第一次修改");
        System.out.println("修改后: " + editor.getContent());

        // 保存状态
        System.out.println("保存状态");
        caretaker.saveState(editor.createMemento());
        
        // 再次修改
        editor.append(" 第二次修改");
        System.out.println("再次修改后: " + editor.getContent());
        
        // 恢复到上一个状态
        editor.restoreFromMemento(caretaker.getPreviousState());
        System.out.println("恢复后: " + editor.getContent());
        
        // 恢复到初始状态
        editor.restoreFromMemento(caretaker.getPreviousState());
        System.out.println("再次恢复后: " + editor.getContent());
    }
}    